home *** CD-ROM | disk | FTP | other *** search
/ Magnum One / Magnum One (Mid-American Digital) (Disc Manufacturing).iso / d21 / dvglue10.arc / TVAPI.H < prev    next >
C/C++ Source or Header  |  1988-08-13  |  24KB  |  599 lines

  1. /*
  2. **      TVAPI.H - types and function prototypes.
  3. **    IBM Personal Computer - TopView C Interface Header File.
  4. **    Written for Borland Turbo C v1.5.
  5. */
  6.  
  7. #include <alloc.h>
  8. #include <dos.h>
  9.  
  10. #define DVGLUE_version    100
  11. #define DVGLUE_versionSTR "1.00"
  12.  
  13. #ifdef __TURBOC__
  14. #  define PASCAL     /* we support the pascal calling conventions */
  15. #else
  16. /*#  define PASCAL   */  /* uncomment if pascal calling convention supported */
  17. #endif __TURBOC__
  18.  
  19. #ifndef PASCAL
  20. #  define pascal
  21. #endif PASCAL
  22.  
  23. /***********************************************************/
  24.  
  25. typedef unsigned char  BYTE;  /* 8-bit value */
  26. typedef signed char SBYTE;    /* 8-bit signed value */
  27. typedef unsigned short WORD;  /* 16-bit value */
  28. typedef unsigned long DWORD;  /* 32-bit value */
  29. typedef void far *OBJECT;     /* object handle */
  30. #define OBJSEG FP_SEG         /* we often need only the segment of obj handle */
  31. #define MK_OBJ(seg) (OBJECT)MK_FP(seg,0) /* sometimes have to build an obj handle */
  32.  
  33. /***********************************************************/
  34. /* functions that are implemented inline                   */
  35. /***********************************************************/
  36.  
  37. #define TVpause()     _AX = 0x1000, geninterrupt(0x15)
  38. #define TVostack()    _AX = 0x101A, geninterrupt(0x15)
  39. #define TVbegincrit() _AX = 0x101B, geninterrupt(0x15)
  40. #define TVendcrit()   _AX = 0x101C, geninterrupt(0x15)
  41. #define TVustack()    _AX = 0x1025, geninterrupt(0x15)
  42. #define DVenable()    _AX = 0x110F, geninterrupt(0x15)
  43.  
  44. /***********************************************************/
  45. /* functions that are just aliases of others               */
  46. /***********************************************************/
  47.  
  48. #define TVwin_hcur(handle)       TVputchar(handle,0,0)
  49. #define TVwin_blanks(win,count)  TVwin_repchar(win,' ',count)
  50. #define TVnosound()              TVsound(0,0)
  51. #define TVunlock      TVmbx_close
  52. #define TVpanel_free  _TV_object_free
  53. #define TVptr_free    _TV_object_free
  54. #define TVtimer_free  _TV_object_free
  55. #define TVpanel_close _TV_object_close
  56. #define TVptr_close   _TV_object_close
  57. #define TVtimer_close _TV_object_close
  58.  
  59. /***********************************************************/
  60. /* functions that need to override default library funcs   */
  61. /***********************************************************/
  62.  
  63. #define malloc  _TV_malloc
  64. #define calloc  _TV_calloc
  65. #define realloc _TV_realloc
  66. #define free    _TV_free
  67.  
  68. /***********************************************************/
  69. /* Manifest constants for TVposwin()                       */
  70. /***********************************************************/
  71.  
  72. /* select a horizontal position ... */
  73. #define PW_HCURR     0
  74. #define PW_HCENTER   1
  75. #define PW_LEFT      2
  76. #define PW_RIGHT     3
  77. /* ... and a vertical position by ORing them together */
  78. #define PW_VCURR     0
  79. #define PW_VCENTER   4
  80. #define PW_TOP       8
  81. #define PW_BOTTOM   12
  82. /* optionally, choose not to refresh the screen right away */
  83. #define PW_NOREDRAW 16
  84.  
  85. /***********************************************************/
  86. /* Constants for TVkbd_setflags() & TVkbd_clrflags()       */
  87. /***********************************************************/
  88.  
  89. #define KBD_FIELDMODE   1
  90. #define KBD_ACTIVE      2
  91. #define KBD_INSERT      4
  92. #define KBD_CONCURRENT  8
  93. #define KBD_FILTERALL  16
  94.  
  95. /***********************************************************/
  96. /* Constants for TVptr_setflags() & TVptr_clrflags()       */
  97. /***********************************************************/
  98.  
  99. #define PTR_BUTTON     1
  100. #define PTR_RELEASE    4
  101. #define PTR_ABSOLUTE   8
  102. #define PTR_SLOWCLICK 16
  103. #define PTR_NOTFORE   32
  104. #define PTR_NOTTOP    64
  105. #define PTR_HIDDEN  0x80
  106.  
  107. /* bits to check for 'button_state' field of POINTER_MSG type */
  108. #define BUTTON_PRESS    0x80
  109. #define BUTTON_RELEASE  0x40
  110. #define BUTTON_LEFT     1
  111. #define BUTTON_RIGHT    2
  112.  
  113. /***********************************************************/
  114. /* Constants for TVwin_scroll() and TVfld_scroll()         */
  115. /***********************************************************/
  116.  
  117. #define SCRL_UP     0
  118. #define SCRL_DOWN   1
  119. #define SCRL_LEFT   2
  120. #define SCRL_RIGHT  3
  121.  
  122. /***********************************************************/
  123. /* Constants for TVfld_build_header() and type FT_HEADER   */
  124. /***********************************************************/
  125.  
  126. /* screen types (OR together to get desired behavior) */
  127. #define F_NOREAD         0
  128. #define F_READARRAY      1
  129. #define F_READALL        2
  130. #define F_READNEW        3
  131. /* the above are mutually exclusive */
  132. #define F_NOFLAGS        8
  133. #define F_RIGHTBUTTON 0x10
  134. #define F_LEFTBUTTON  0x20
  135. #define F_ALLOWKBD    0x40
  136.  
  137. /***********************************************************/
  138. /* Constants for TVfld_build_entry() and typedef FT_ENTRY  */
  139. /***********************************************************/
  140.  
  141. /* field types */
  142. #define F_NONENTRY  0x00
  143. #define F_MENUECHO  0x40
  144. #define F_FILLIN    0x80
  145. #define F_MENU      0xC0
  146.  
  147. /* field flags, OR with one of the above types */
  148. #define F_SELECTED  2
  149. #define F_MODIFIED  1
  150.  
  151. /* field modifiers for F_FILLIN (OR together) */
  152. #define F_BEEP      0x80
  153. #define F_NEXT      0x40
  154. #define F_NUMBER    0x20
  155. #define F_UPPER     0x10
  156. #define F_CLEAR     0x08
  157.  
  158. /***********************************************************/
  159. /*  Other predefined constants                             */
  160. /***********************************************************/
  161.  
  162. /* Predefined Message Numbers: */
  163. #define OBJECT_MSG       0 /* Return Object Handle */
  164. #define NEW_MSG          1 /* Create New Object */
  165. #define FREE_MSG         2 /* Free Object */
  166. #define ADDR_MSG         3 /* Return Handle of Object */
  167. #define DIR_MSG          3 /* Get Panel File Directory */
  168. #define READ_MSG         4 /* Return Next Logical record (I/O) */
  169. #define APPLY_MSG        4 /* Apply Panel to Window Object */
  170. #define WRITE_MSG        5 /* Write String to Object */
  171. #define SIZE_MSG         8 /* Return Size of Object */
  172. #define LEN_MSG          9 /* Return Length of Object */
  173. #define ADDTO_MSG       10 /* Add To Value of Object */
  174. #define SUBFROM_MSG     11 /* Subtract From Value of Object */
  175. #define OPEN_MSG        12 /* Open Object for Use (I/O) */
  176. #define CLOSE_MSG       13 /* Close Object (I/O) */
  177. #define ERASE_MSG       14 /* Erase Object (I/O) */
  178. #define STATUS_MSG      15 /* Return Status of Object (I/O) */
  179. #define EOF_MSG         16 /* Return Object End of File Status (I/O) */
  180. #define AT_MSG          17 /* Position Object Cursor (I/O) */
  181. #define SETSCALE_MSG    17 /* Set Pointer Scaling Factors */
  182. #define SETNAME_MSG     17 /* Assign name to mailbox */
  183. #define READN_MSG       18 /* Return Next n Byte from Object (I/O) */
  184. #define GETSCALE_MSG    18 /* Get Pointer Scaling Factors */
  185. #define REDRAW_MSG      19 /* Redraw Object (WINDOW) */
  186. #define SETICON_MSG     19 /* Specify Pointer Icon */
  187. #define SETESC_MSG      20 /* Define User Escape */
  188. #define LOCK_MSG        20 /* Request Exclusive Access */
  189.  
  190. /* Object Modifiers: */
  191. #define TOS             0  /* Use Contents of Top of Stack as Object */
  192. #define ME              1  /* Use Requesting Task's WINDOW as Object */
  193. #define MAILTOS         2  /* Use MAILBOX(tos) as Object */
  194. #define MAILME          3  /* Use MAILBOX(me) as Object */
  195. #define KEYTOS          4  /* Use KEYBOARD(tos) as Object */
  196. #define KEYME           5  /* Use KEYBOARD(me) as Object */
  197. #define OBJQTOS         6  /* Use OBJECTQ(tos) as Object */
  198. #define OBJQME          7  /* Use OBJECTQ(me) as Object */
  199. /* the following are only for creating new objects */
  200. #define WINDOW_CLASS    8  /* Use WINDOW Class as Object */
  201. #define MAILBOX_CLASS   9  /* Use MAILBOX Class as Object */
  202. #define KEYBOARD_CLASS  10 /* Use KEYBOARD Class as Object */
  203. #define TIMER_CLASS     11 /* Use TIMER Class as Object */
  204. #define POINTER_CLASS   15 /* Use POINTER Class as Object */
  205. #define PANEL_CLASS     16 /* Use PANEL Class as Object */
  206.  
  207. /* Logical Text Attributes: */
  208. #define NORMAL          1
  209. #define NORMAL_HILITE    2
  210. #define HELP            3
  211. #define HELP_HILITE     4
  212. #define ERROR           5
  213. #define ERROR_HILITE    6
  214. #define EMPHASIZED      7
  215. #define MARK            8
  216. /* ADD this to get reverse version of one of the above logical attributes */
  217. #define REVERSE_VIDEO   8
  218.  
  219. /***********************************************************/
  220. /*               useful shorthands                         */
  221. /***********************************************************/
  222.  
  223. #ifndef NIL
  224. #  define NIL (OBJECT) 0
  225. #endif NIL
  226.  
  227. #ifndef FALSE
  228. #  define FALSE 0
  229. #endif FALSE
  230.  
  231. #ifndef TRUE
  232. #  define TRUE !FALSE
  233. #endif TRUE
  234.  
  235. /***********************************************************/
  236. /*  Type definitions used by library                       */
  237. /***********************************************************/
  238.  
  239. typedef struct {        /* send message parameter list */
  240.         WORD num_args;  /* number of arguments */
  241.         DWORD arg[9];   /* 32-bit argument(s) */
  242. } PARMLIST;
  243.  
  244. typedef struct {
  245.    WORD  num_args ;
  246.    DWORD arg[1] ;
  247. } PARMLIST1 ;
  248.  
  249. typedef struct {
  250.    WORD  num_args ;
  251.    DWORD arg[2] ;
  252. } PARMLIST2 ;
  253.  
  254. typedef struct {
  255.    WORD  num_args ;
  256.    DWORD arg[3] ;
  257. } PARMLIST3 ;
  258.  
  259. typedef struct {
  260.    WORD  num_args ;
  261.    DWORD arg[4] ;
  262. } PARMLIST4 ;
  263.  
  264. typedef struct {
  265.    WORD  num_args ;
  266.    DWORD arg[8] ;
  267. } PARMLIST8 ;
  268.  
  269. typedef struct
  270.    {
  271.    BYTE numfields ;
  272.    BYTE type ;
  273.    BYTE cursor_last ;
  274.    BYTE mouse_last ;
  275.    BYTE curr_attr ;
  276.    BYTE selected_attr ;
  277.    } FT_HEADER ;
  278.  
  279. typedef struct    /* field table entry, one for each field on screen */
  280.    {
  281.    BYTE upleftrow, upleftcol, lowrightrow, lowrightcol ;
  282.    BYTE type ;
  283.    BYTE modifier ;
  284.    BYTE status ;
  285.    BYTE key2 ;
  286.    } FT_ENTRY ;
  287.  
  288. /*-------------------------------------------------------*/
  289. /* format of message which is sent on async notification */
  290. /* ANY module using this MUST have alignment set to byte */
  291. /* (-a- for TCC)                                         */
  292.  
  293. typedef struct
  294.    {
  295.    BYTE event ;  /* which event happened? */
  296.    union {
  297.       struct                 /* window was moved */
  298.          {
  299.          OBJECT window ;
  300.          char   row ;
  301.          char   col ;
  302.          } movement ;
  303.       struct                 /* window was resized */
  304.          {
  305.          OBJECT window ;
  306.          BYTE   rows ;
  307.          BYTE   cols ;
  308.          } resizing ;
  309.       struct                 /* window was scrolled */
  310.          {
  311.          OBJECT window ;
  312.          char   mouse_row ;
  313.          char   mouse_col ;
  314.          char   unknown ;
  315.          SBYTE  amount ;
  316.          } scrolling ;
  317.       struct                 /* window was requested to close */
  318.          {
  319.          OBJECT window ;
  320.          char   mouse_row ;
  321.          char   mouse_col ;
  322.          char   unknown ;
  323.          } closing ;
  324.       struct                 /* help requested on window */
  325.          {
  326.          OBJECT window ;
  327.          char   mouse_row ;
  328.          char   mouse_col ;
  329.          char   unknown ;
  330.          } help ;
  331.       BYTE video_mode ;      /* video mode changed */
  332.       struct                 /* scissors selected */
  333.          {
  334.          OBJECT window ;
  335.          BYTE   up_left_row ;
  336.          BYTE   up_left_col ;
  337.          char   unknown ;
  338.          OBJECT mailbox ;
  339.          BYTE   height ;
  340.          BYTE   width ;
  341.          } scissors ;
  342.       } msg ;
  343.    BYTE pad ;     /* needed for TVreadmail() */
  344.    } NOTIFY_MSG ;
  345.  
  346. /*-------------------------------------------------------*/
  347. /* format of messages read from a pointer object         */
  348.  
  349. typedef struct
  350.    {
  351.    int row ;
  352.    int column ;
  353.    BYTE button_state ;
  354.    } POINTER_MSG ;
  355.  
  356. /***********************************************************/
  357. /* low-level functions which should not be called directly */
  358. /***********************************************************/
  359.  
  360. void far pascal _TVnotify_handler(void) ;
  361. void far pascal _TVinterrupt_handler(void) ;
  362.  
  363. void pascal _TV_object_free(OBJECT obj) ;
  364. void pascal _TV_object_close(OBJECT obj) ;
  365.  
  366. /***********************************************************/
  367. /* the DESQview SEND interface glue functions              */
  368. /***********************************************************/
  369.  
  370. void pascal TVsendmsg(WORD msg_num,WORD modifier,OBJECT object_hdl,PARMLIST far *msg_args) ;
  371. void pascal TVsendmsg0(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
  372. DWORD pascal TVsendmsg1(WORD msg_num,WORD modifier,OBJECT object_hdl) ;
  373.  
  374. /***********************************************************/
  375. /*  support functions which guard non-reentrant functions  */
  376. /***********************************************************/
  377.  
  378. void *_TV_malloc(size_t size) ;
  379. void *_TV_calloc(size_t nitems, size_t size) ;
  380. void *_TV_realloc(void *block, size_t size) ;
  381. void _TV_free(void *block) ;
  382.  
  383. /***********************************************************/
  384. /*                 the API function calls                  */
  385. /***********************************************************/
  386.  
  387. int pascal TVinit(void) ;
  388. void pascal TVexit(void) ;
  389. int pascal DVinit(void) ;
  390. void pascal DVexit(void) ;
  391. WORD pascal DVprogname(void) ;
  392. int pascal DVappnum(void) ;
  393. void pascal DVdbgpoke(char c) ;
  394. void pascal DVapilevel(int level, int mod) ;
  395. WORD pascal DVpushkey(int key, int scancode) ;
  396. void pascal DVjustify(int justify) ;
  397. void pascal DVcommon_mem(WORD *avail, WORD *largest, WORD *total) ;
  398. void pascal DVconv_mem(WORD *avail, WORD *largest, WORD *total) ;
  399. void pascal DVexp_mem(WORD *avail, WORD *largest, WORD *total) ;
  400. WORD pascal DVver(void) ;
  401. OBJECT pascal DVapp_start(void *pif, int pif_size) ;
  402. void pascal TVpanel_open(OBJECT panel, char *file) ;
  403. void pascal TVwin_stream(OBJECT window,BYTE *stream) ;
  404. OBJECT pascal TVwin_new(OBJECT window,int rows,int cols) ;
  405. OBJECT pascal TVmbx_sender(OBJECT mbx) ;
  406. void pascal TVmbx_clear(OBJECT mbx) ;
  407. void pascal TVmbx_close(OBJECT mbx) ;
  408. int pascal TVmbx_eof(OBJECT mbx) ;
  409. OBJECT pascal TVmbx_find(char *name) ;
  410. void pascal TVmbx_free(OBJECT mbx) ;
  411. OBJECT pascal TVmymbx(void) ;
  412. OBJECT pascal TVmbxof(OBJECT task) ;
  413. void pascal TVmbx_name(OBJECT mbx,char *name) ;
  414. OBJECT pascal TVmbx_new(void) ;
  415. void pascal TVmbx_open(OBJECT mbx) ;
  416. int pascal TVreadmail(OBJECT mbx,char *buffer,int maxsize) ;
  417. void pascal TVsendmail(OBJECT mbx,char *msg,int length) ;
  418. void pascal TVmbx_write(OBJECT mbx,int reference,int status,char *msg,int length) ;
  419. int pascal TVmbx_size(OBJECT mbx) ;
  420. int pascal TVmbx_status(OBJECT mbx) ;
  421. int pascal TVwin_read(OBJECT win,void *buffer,int maxsize) ;
  422. int pascal TVwin_nread(OBJECT win,void *buffer,int n) ;
  423. void pascal TVfld_attr(OBJECT win,int field,int attr) ;
  424. void pascal TVfld_char(OBJECT win,int field,int c) ;
  425. void pascal TVfld_clear(OBJECT win,int field) ;
  426. void pascal TVfld_cursor(OBJECT win,int field) ;
  427. void pascal TVfld_entry(OBJECT win,int field,FT_ENTRY *entry) ;
  428. void pascal TVfld_header(OBJECT win,FT_HEADER *header) ;
  429. void pascal TVfld_scroll(OBJECT win,int fld,int direction) ;
  430. int pascal TVfld_swrite(OBJECT win,int field,char *s) ;
  431. void pascal TVfld_type(OBJECT win,int fld,int type) ;
  432. int pascal TVfld_write(OBJECT win,int field,char *s) ;
  433. int pascal TVqry_field(OBJECT win,int fld,int bufsize,char *buffer) ;
  434. void pascal TVqry_entry(OBJECT win,int fld,FT_ENTRY *entry) ;
  435. void pascal TVqry_header(OBJECT win,FT_HEADER *header) ;
  436. unsigned int pascal TVqry_fieldsize(OBJECT win,int fld) ;
  437. int pascal TVqry_type(OBJECT win,int fld) ;
  438. void pascal TVgetbuf(OBJECT win,char far **buffer, int *size, int *flag) ;
  439. void pascal TVtimer_begin(OBJECT timer, DWORD time) ;
  440. void pascal TVtimer_start(OBJECT timer) ;
  441. void pascal TVtimer_stop(OBJECT timer) ;
  442. void pascal TVtimer_set(OBJECT timer,int hour,int minute,int second,int hundredth) ;
  443. DWORD pascal TVtimer_elapsed(OBJECT timer) ;
  444. DWORD pascal TVtimer_len(OBJECT timer) ;
  445. DWORD pascal TVtimer_wait(OBJECT timer) ;
  446. OBJECT pascal TVtimer_new(void) ;
  447. int pascal TVtimer_status(OBJECT timer) ;
  448. WORD pascal TVgetbit(void far (*handler)(void)) ;
  449. void pascal TVfreebit(WORD bit) ;
  450. void pascal TVsetbit(WORD bit) ;
  451. int pascal TVisobj(OBJECT obj) ;
  452. void pascal TVapp_goback(OBJECT win) ;
  453. void pascal TVapp_gofore(OBJECT win) ;
  454. void pascal TVapp_free(OBJECT win) ;
  455. void pascal TVapp_hide(OBJECT win) ;
  456. void pascal TVapp_show(OBJECT win) ;
  457. void pascal TVapp_suspend(OBJECT win) ;
  458. void pascal TVkbd_setflags(OBJECT kbd,int flags) ;
  459. void pascal TVkbd_clrflags(OBJECT kbd,int flags) ;
  460. void pascal TVkbd_clear(OBJECT kbd) ;
  461. void pascal TVkbd_close(OBJECT kbd) ;
  462. void pascal TVkbd_setesc(OBJECT kbd,void far (*func)(void)) ;
  463. void pascal TVkbd_free(OBJECT kbd) ;
  464. void pascal TVkbd_open(OBJECT kbd,OBJECT win) ;
  465. void pascal TVkbd_write(OBJECT kbd,char *data,int size,int scancode) ;
  466. OBJECT pascal TVmykbd(void) ;
  467. OBJECT pascal TVkbdof(OBJECT task) ;
  468. OBJECT pascal TVkbd_new(void) ;
  469. int pascal TVkbd_read(OBJECT kbd,char *buffer,int maxsize) ;
  470. int pascal TVkbd_messages(OBJECT kbd) ;
  471. int pascal TVkbd_status(OBJECT kbd) ;
  472. int pascal TVerrormsg(OBJECT win, char *string,int tone,int button,int rows,int cols) ;
  473. OBJECT pascal TVlocate(OBJECT win,int row,int col) ;
  474. void pascal TVlock(OBJECT mbx) ;
  475. void pascal TVwin_allow(OBJECT win,int command) ;
  476. void pascal TVwin_disallow(OBJECT win,int command) ;
  477. void pascal TVwin_async(OBJECT win,void far (*func)(void)) ;
  478. void pascal TVwin_notify(OBJECT win,int event) ;
  479. void pascal TVwin_cancel(OBJECT win,int event) ;
  480. void pascal TVwin_bottom(OBJECT win) ;
  481. void far * pascal TVgetmem(unsigned amt) ;
  482. void pascal TVputmem(void far *block) ;
  483. void pascal TVforeonly(OBJECT taskwin,int foreonly) ;
  484. void pascal TVwin_minsize(OBJECT win,int rows,int cols) ;
  485. void pascal TVwin_maxsize(OBJECT win,int rows,int cols) ;
  486. void cdecl TVwin_reorder(OBJECT win,unsigned first,...) ;
  487. void pascal TVwin_top(OBJECT win) ;
  488. void pascal TVwin_topsys(OBJECT win) ;
  489. void pascal TVobq_add(OBJECT obq, OBJECT item) ;
  490. OBJECT pascal TVobject(WORD which) ;
  491. int pascal TVobq_size(OBJECT obq) ;
  492. DWORD pascal TVobq_status(OBJECT obq) ;
  493. void pascal TVobq_clear(OBJECT obq) ;
  494. void pascal TVobq_close(OBJECT obq) ;
  495. OBJECT pascal TVmyobq(void) ;
  496. OBJECT pascal TVobqof(OBJECT task) ;
  497. void pascal TVobq_open(OBJECT obq) ;
  498. OBJECT pascal TVobq_read(OBJECT obq) ;
  499. void pascal TVobq_remove(OBJECT obq, OBJECT item) ;
  500. OBJECT pascal TVpanel_new(void) ;
  501. DWORD pascal TVpanel_status(OBJECT panel) ;
  502. int pascal TVpanel_size(OBJECT panel) ;
  503. void pascal TVptr_open(OBJECT pointer, OBJECT win) ;
  504. void pascal TVptr_erase(OBJECT pointer) ;
  505. void pascal TVptr_icon(OBJECT pointer, char symbol) ;
  506. OBJECT pascal TVptr_new(void) ;
  507. void pascal TVptr_setflags(OBJECT pointer,WORD flags) ;
  508. int pascal TVptr_messages(OBJECT pointer) ;
  509. DWORD pascal TVptr_status(OBJECT pointer) ;
  510. void pascal TVptr_clrflags(OBJECT pointer,WORD flags) ;
  511. void pascal TVptr_goto(OBJECT ptr,int row,int col) ;
  512. void pascal TVptr_setscale(OBJECT ptr,int rows,int cols) ;
  513. void pascal TVptr_getscale(OBJECT ptr,int *rows,int *cols) ;
  514. int pascal TVptr_read(OBJECT win,POINTER_MSG *msg) ;
  515. void pascal TVposwin(OBJECT win, OBJECT parent, int pos, int row_offset, int col_offset) ;
  516. void pascal TVputchar(OBJECT win, int c, int attribute) ;
  517. void pascal TVwin_point(OBJECT win,OBJECT ptr) ;
  518. int pascal TVqry_attr(OBJECT win) ;
  519. int pascal TVqry_color(OBJECT win,int attr) ;
  520. int pascal TVqry_ctrl(OBJECT win) ;
  521. void pascal TVqry_cursor(OBJECT win,int *row, int *col) ;
  522. int pascal TVqry_frattr(OBJECT win) ;
  523. int pascal TVqry_frame(OBJECT win) ;
  524. int pascal TVqry_hidden(OBJECT win) ;
  525. int pascal TVqry_logattr(OBJECT win) ;
  526. int pascal TVqry_leave(OBJECT win) ;
  527. void pascal TVqry_lsize(OBJECT win,int *rows, int *cols) ;
  528. void pascal TVqry_origin(OBJECT win,int *row, int *col) ;
  529. void pascal TVqry_position(OBJECT win,int *row, int *col) ;
  530. void pascal TVqry_size(OBJECT win,int *rows,int *cols) ;
  531. void far *TVshadow(void) ;
  532. void far *DVshadow_start(int *rows,int *cols) ;
  533. void DVshadow_stop(void) ;
  534. void TVupdate(void far *first, WORD count) ;
  535. void pascal TVsleep(DWORD time) ;
  536. void pascal TVsound(int freq, int duration) ;
  537. void pascal TVtask_free(OBJECT task) ;
  538. OBJECT pascal TVmytask(void) ;
  539. void pascal TVinterrupt(OBJECT task,void far (*func)(void)) ;
  540. OBJECT pascal TVtask_new(OBJECT parent,char *title,int row,int col,int rows,int cols,char *stack,int stacksize,void (*startaddr)(int),int switch_menu) ;
  541. OBJECT cdecl TVapp_new(OBJECT win,int row,int col,int rows,int cols,int switch_menu,char *program, ...) ;
  542. void pascal TVtask_post(OBJECT task) ;
  543. void pascal TVtask_start(OBJECT task) ;
  544. void pascal TVtask_stop(OBJECT task) ;
  545. WORD pascal TVver(void) ;
  546. void pascal TVwin_attach(OBJECT win) ;
  547. void pascal TVwin_detach(OBJECT win) ;
  548. void pascal TVwin_attr(OBJECT win,int attr) ;
  549. void pascal TVwin_clear(OBJECT win) ;
  550. void pascal TVwin_color(OBJECT win,int logattr,int physattr) ;
  551. void pascal TVwin_ctrl(OBJECT win,int ctrl) ;
  552. void pascal TVwin_cursor(OBJECT win,int row,int col) ;
  553. int pascal TVwin_eof(OBJECT win) ;
  554. void pascal TVwin_frattr(OBJECT win,int attr) ;
  555. void pascal TVwin_fill(OBJECT win,char c) ;
  556. void pascal TVwin_frame(OBJECT win,int frame) ;
  557. void pascal TVwin_free(OBJECT win) ;
  558. OBJECT pascal TVmywindow(void) ;
  559. void pascal TVwin_hide(OBJECT win) ;
  560. void pascal TVwin_unhide(OBJECT win) ;
  561. OBJECT pascal TVcreate_window(OBJECT win,char *title,int rows,int cols, int system_mem, DWORD unknown) ;
  562. void pascal TVwin_logattr(OBJECT win,int logical) ;
  563. void pascal TVwin_leave(OBJECT win, int leave) ;
  564. void pascal TVwin_lsize(OBJECT win,int rows,int cols) ;
  565. void pascal TVwin_move(OBJECT win,int row,int col) ;
  566. void pascal TVwin_origin(OBJECT win,int row,int col) ;
  567. void pascal TVredrawwin(OBJECT win) ;
  568. int cdecl TVwin_printf(OBJECT win,char *format, ...) ;
  569. void pascal TVwin_redraw(OBJECT win) ;
  570. void pascal TVwin_repattr(OBJECT win,int attr,int count) ;
  571. void pascal TVwin_repchar(OBJECT win,int c,int count) ;
  572. void pascal TVwin_resize(OBJECT win,int rows,int cols) ;
  573. int pascal TVwin_size(OBJECT win) ;
  574. void pascal TVwin_scroll(OBJECT win,int top,int left,int height,int width, int direction) ;
  575. void pascal TVwin_swrite(OBJECT win,char *string) ;
  576. void pascal TVwin_title(OBJECT win,char *title) ;
  577. int pascal TVwin_width(OBJECT win) ;
  578. void pascal TVwin_writea(OBJECT win,char *attr,int len) ;
  579. void pascal TVwin_writeca(OBJECT win,char *chars,char *attr,int len) ;
  580. void pascal TVwin_write(OBJECT win,char *string,int len) ;
  581. void pascal TVqry_title(OBJECT win,char *title,int size) ;
  582. void pascal TVwin_atread(OBJECT win,int read_attr) ;
  583. int pascal TVqry_atread(OBJECT win) ;
  584. void pascal TVwin_gotoxy(OBJECT win,int x,int y) ;
  585. int pascal TVkbd_getc(OBJECT kbd) ;
  586. void pascal TVfld_point(OBJECT win,int fld,int x,int y) ;
  587. void pascal TVfld_reset(OBJECT win) ;
  588. void pascal TVfld_altmode(OBJECT kbd,int altmode) ;
  589. BYTE * pascal TVfld_build_header(int num_fields,int screen_type,int curr_attr,int selected_attr) ;
  590. void pascal TVfld_build_entry(BYTE *stream,int field,int upleftrow,int upleftcol,
  591.                               int lowrightrow,int lowrightcol,int type,int modifier,
  592.                               int color,int key2) ;
  593. void pascal TVfld_build_color(BYTE *stream,int field,int attr) ;
  594. void pascal TVfld_marker(OBJECT win,char marker) ;
  595. int pascal TVqry_kmouse(void);
  596. void pascal TVapi_kmouse(int active) ;
  597. char far * pascal TVpanel_dir(OBJECT panel,int *size) ;
  598. void pascal TVpanel_apply(OBJECT panel,char *name,OBJECT window) ;
  599.